#pragma once

#include <Totem/types_config.h>

namespace Game
{
	class GameManager;
	class EntityManager;
	class Entity;

	namespace World
	{
		namespace Components { class Room; }
		namespace Systems
		{
			class RoomSystem
			{
			public:
				RoomSystem(GameManager &gameMgr);
				virtual ~RoomSystem();

				Entity &createRoom();
				void add(Components::Room *room);
				void remove(Components::Room *room);

				void update(float dt);

				GameManager &getGameMgr() { return gameMgr; }
				EntityManager &getEntityMgr() { return *entityMgr; }

			private:
				GameManager &gameMgr;

				EntityManager *entityMgr;
				T_Vector<Components::Room*>::Type rooms;
			};
		}
	}
}
